#ifndef CLIPBOARDSTORAGE_H
#define CLIPBOARDSTORAGE_H

#include <QObject>
#include <vector>
#include <QString>
#include "clipboardItem.h"

class ClipboardStorage : public QObject {
    Q_OBJECT // 宏，启用信号和槽机制

public:
    explicit ClipboardStorage(QObject *parent = nullptr);
    ~ClipboardStorage();
    void addItem(const ClipboardItem& item);
    void addFileItem(const ClipboardItem& item);
    void favoriteItem(size_t index);
    bool copyDirectory(const QString &sourceDirPath, const QString &destinationDirPath);
    std::vector<ClipboardItem> getItems();

    void importData(const QString& filePath);
    void exportData(const QString& filePath);
    void removeItem(size_t index);
    bool editItem(size_t index, const QVariant& newContent);
    size_t getItemIndex(const ClipboardItem& item);

private:
    std::vector<ClipboardItem> items;

signals:
    void updateItem();
};

#endif // CLIPBOARDSTORAGE_H
